package domein;

import java.sql.Time;
import java.sql.Date;
import java.util.HashMap;
import javax.swing.ImageIcon;
import persistentie.PersistentieFactory;

/**
 *
 * @author Robin
 */
public class Webinar {

    private int webinarID;
    private String onderwerp;
    private String commentaar;
    private String afbeelding;
    private ImageIcon icon;
    private Date dagt;
    private Time startU;
    private Time eindU;
    private boolean afgelopen;
    private boolean actief;
    private int instructeur;
    private HashMap<Integer, Gebruiker> inschrijvingen = null;

    public Webinar(String onderwerp, String commentaar, String afbeelding,
            Date dagt, Time startU, Time eindU, boolean afgelopen, int instructeur, boolean actief) {
        this.onderwerp = onderwerp;
        this.commentaar = commentaar;
        this.afbeelding = afbeelding;
        setIcon();
        this.dagt = dagt;
        this.startU = startU;
        this.eindU = eindU;
        this.afgelopen = afgelopen;
        this.instructeur = instructeur;
        this.actief = actief;
        //this.inschrijvingen=PersistentieFactory.getWebinarMapper().geefVolgersWebinar(webinarID);
    }

    public Webinar(int webinarID, String onderwerp, String commentaar, String afbeelding,
            Date dagt, Time startU, Time eindU, boolean afgelopen, int instructeur, boolean actief) {
        this.webinarID = webinarID;
        this.onderwerp = onderwerp;
        this.commentaar = commentaar;
        this.afbeelding = afbeelding;
        setIcon();
        this.dagt = dagt;
        this.startU = startU;
        this.eindU = eindU;
        this.afgelopen = afgelopen;
        this.instructeur = instructeur;
        this.actief = actief;
        this.inschrijvingen = PersistentieFactory.getWebinarMapper().geefVolgersWebinar(webinarID);
    }

    //getters/setters
    public int getWebinarID() {
        return webinarID;
    }

    public void setWebinarID(int wid) {
        webinarID = wid;
    }

    public String getOnderwerp() {
        return onderwerp;
    }

    public void setOnderwerp(String ow) {
        onderwerp = ow;
    }

    public String getCommentaar() {
        return commentaar;
    }

    public void setCommentaar(String c) {
        commentaar = c;
    }

    /**
     * @return the afbeelding
     */
    public String getAfbeelding() {
        return afbeelding;
    }

    /**
     * @param afbeelding the afbeelding to set
     */
    public void setAfbeelding(String afbeelding) {
        this.afbeelding = afbeelding;
    }

    public Date getDag() {
        return dagt;
    }

    public void setDag(Date d) {
        dagt = d;
    }

    public Time getStartU() {
        return startU;
    }

    public void setStartU(Time u) {
        startU = u;
    }

    public Time getEindU() {
        return eindU;
    }

    public void setEindU(Time u) {
        eindU = u;
    }

    /**
     * @return the afgelopen
     */
    public boolean isAfgelopen() {
        return afgelopen;
    }

    /**
     * @param afgelopen the afgelopen to set
     */
    public void setAfgelopen(boolean afgelopen) {
        this.afgelopen = afgelopen;
    }

    /**
     * @return the instructeur
     */
    public int getInstructeur() {
        return instructeur;
    }

    /**
     * @param instructeur the instructeur to set
     */
    public void setInstructeur(int instructeur) {
        this.instructeur = instructeur;
    }

    public HashMap<Integer, Gebruiker> getInschrijvingen() {
        return inschrijvingen;
    }

    public void setInschrijvingen(HashMap<Integer, Gebruiker> insch) {
        inschrijvingen = insch;
    }

    /**
     * @return the icon
     */
    public ImageIcon getIcon() {
        return icon;
    }

    /**
     * @param icon the icon to set
     */
    private void setIcon() {
        if (!afbeelding.equals("")) {
            icon = new ImageIcon(afbeelding);
        } else {
            icon = null;
        }
    }

    @Override
    public String toString() {
        return getOnderwerp();
    }

    /**
     * @return the actief
     */
    public boolean isActief() {
        return actief;
    }

    /**
     * @param actief the actief to set
     */
    public void setActief(boolean actief) {
        this.actief = actief;
    }
}
